Packages

Case studies

Load data

per lemma

Comparative analyses

Check tweets

tweets %>%
  select(tweet, date) %>%
  slice(., sample(1:n()))

Usage intensity

uses <- get_uses(tweets)
uses_tot <- get_uses_tot(uses)
age = get_age(uses)
coef_var <- get_coef_var(uses)
mean_date <- get_mean_date(uses)
max_date <- get_max_date(uses)
uses_month <- conv_uses_month(uses)
uses_plt <- plt_uses(uses_month, lemma, mean_date, max_date)
ggplotly(uses_plt)
`geom_smooth()` using method = 'loess' and formula 'y ~ x'

Degree centralization

Diachronic

df_comp %>%
  filter(LEMMA == lemma) %>%
  select(SUBSET, CENT_DEGREE) %>%
  mutate(SUBSET = factor(SUBSET, levels=c('first', 'mean', 'max', 'last', 'full'))) %>%
  ggplot(., aes(x=SUBSET, y=CENT_DEGREE, group=1)) +
    geom_point() +
    geom_line()

Comparative analyses

Degree centrality

Overall

List

df_comp %>%
  select(LEMMA, SUBSET, USES, CENT_DEGREE) %>%
  filter(
    SUBSET == 'full',
    # USES >= 10000
    ) %>%
  arrange((CENT_DEGREE))

Plot

plt <- df_comp %>%
  select(LEMMA, SUBSET, USES, CENT_DEGREE) %>%
  filter(SUBSET == 'full') %>%
  arrange((CENT_DEGREE)) %>%
  ggplot(., aes(x=CENT_DEGREE, y=reorder(LEMMA, CENT_DEGREE))) +
    geom_point() +
    scale_x_continuous(trans='log')
ggplotly(plt)

Over time

Across all lemmas

df_comp %>%
  filter(
    SUBSET != 'full',
    EDGES >= 100
    ) %>%
  group_by(SUBSET) %>%
  summarize(CENT_AVG = mean(CENT_DEGREE)) %>%
  mutate(SUBSET = factor(SUBSET, levels=c('first', 'mean', 'max', 'last'))) %>%
  ggplot(., aes(x=SUBSET, y=CENT_AVG, group=1)) +
    geom_point() +
    geom_line()

Biggest changes

df_comp %>%
  select(LEMMA, SUBSET, CENT_DEGREE, EDGES) %>%
  filter(
    SUBSET %in% c('first', 'last'),
    EDGES >= 100
    ) %>%
  dplyr::group_by(LEMMA) %>%
  dplyr::mutate(CENT_DIFF = lag(CENT_DEGREE) - CENT_DEGREE) %>%
  drop_na() %>%
  select(-SUBSET) %>%
  rename(
    CENT_LAST = CENT_DEGREE,
    EDGES_LAST = EDGES
    ) %>%
  arrange(desc(CENT_DIFF))

Usage intensity

Usage intensity vs. network characteristics

Uses vs. degree centralization

Plot

plt <- df_comp %>%
  filter(
    SUBSET == 'full',
    # USES >= 1000
    ) %>%
  select(LEMMA, CENT_DEGREE, USES, EDGES) %>%
  ggplot(., aes(x=CENT_DEGREE, y=USES)) +
    geom_text(aes(label=LEMMA)) + 
    scale_y_continuous(trans='log') +
    scale_x_continuous(trans='log') +
    geom_smooth(method=lm)
ggplotly(plt)

Correlation

df_corr_full <- df_comp %>%
  filter(
    SUBSET != 'full',
    EDGES >= 100
    ) %>%
  select(-c(LEMMA, SUBSET, NET_WINDOW_DATES, SKIP, STAMP, NROWS))
  
cor.test(df_corr_full$USES, df_corr_full$CENT_DEGREE)

Degree centrality vs. communities

Correlation

df_comp %>%
  filter(SUBSET == 'last') %>%
  select(CENT_DEGREE, COMMUNITIES) %>%
  mutate(COMMUNITIES = as.numeric(COMMUNITIES)) %>%
  correlate()

Plot

df_comp %>%
  filter(SUBSET == 'last') %>%
  select(LEMMA, CENT_DEGREE, COMMUNITIES) %>%
  ggplot(., aes(x=CENT_DEGREE, y=as.numeric(COMMUNITIES))) +
    geom_text(aes(label=LEMMA)) +
    scale_x_continuous(trans='log')

Uses vs. users

Plot

plt <- df_comp %>%
  filter(SUBSET == 'full') %>%
  select(LEMMA, USES, USERS) %>%
  ggplot(., aes(x=USERS, y=USES)) +
    geom_text(aes(label=LEMMA)) +
    scale_x_continuous(trans='log') +
    scale_y_continuous(trans='log') +
    geom_smooth(method=lm)
ggplotly(plt)

Correlation

df_comp %>%
  filter(SUBSET == 'full') %>%
  select(USES, USERS) %>%
  correlate()

Coefficient of variation

df_comp %>%
  filter(
    SUBSET == 'full',
    USES >= 1000
    ) %>%
  select(LEMMA, USES, COEF_VAR) %>%
  arrange(desc(COEF_VAR))

Processing status

Lemma list

df_comp %>%
  select(LEMMA, SUBSET, STAMP) %>%
  filter(SUBSET == 'full') %>%
  mutate(STAMP = as_datetime(STAMP)) %>%
  arrange(desc(STAMP))

Dataset statistics

df_comp %>%
  filter(SUBSET == 'full') %>%
  select(LEMMA, SUBSET, USES, USERS) %>%
  dplyr::summarise(
    USES_TOT = sum(USES),
    USERS_TOT = sum(USERS)
    )

COEF_VAR vs. CENT

df_comp %>%
  filter(SUBSET == 'full') %>%
  select(LEMMA, COEF_VAR, CENT_DEGREE) %>%
  ggplot(., aes(y=COEF_VAR, x=CENT_DEGREE)) +
    geom_text(aes(label=LEMMA)) +
    scale_y_continuous(trans='log')

Correlations: EDA

library(Hmisc)

df_corr <- df_comp %>%
  # filter(SUBSET == 'last') %>%
  select(-c(LEMMA, SUBSET, NET_WINDOW_DATES, SKIP, STAMP, NROWS))
  # select(-c(USERS, AGE)) %>%
  # mutate(FOCUS = USES) %>%
  # focus(FOCUS) %>%
  # ggplot(., aes(reorder(rowname, FOCUS), FOCUS)) +
    # geom_col() +
    # coord_flip()
  # rearrange() %>%
  # shave() %>%
  # rplot()
  # network_plot(min_cor=.5) %>%

  
LS0tCmF1dGhvcjogJ1F1aXJpbiBXw7xyc2NoaW5nZXInCnRpdGxlOiAiU29jaWFsIG5ldHdvcmtzIG9mIGxleGljYWwgaW5ub3ZhdGlvbiIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIHRvYzogeWVzCi0tLQoKIyBQYWNrYWdlcwoKYGBge3IgaW5jbHVkZT1GQUxTRX0Kc291cmNlKCdzcmMvbG9hZC1kYXRhLlInKQpzb3VyY2UoJ3NyYy9wb3N0cHJvYy5SJykKc291cmNlKCdzcmMvdXNlcy5SJykKc291cmNlKCdzcmMvdXNlcnMuUicpCnNvdXJjZSgnc3JjL3NuYS5SJykKCmxpYnJhcnkoY29ycnIpCmxpYnJhcnkodGlkeXIpCmBgYAoKIyBDYXNlIHN0dWRpZXMKCiMjIExvYWQgZGF0YQoKIyMjIHBlciBsZW1tYQoKYGBge3IgaW5jbHVkZT1GQUxTRX0KY29ycHVzIDwtICcvVm9sdW1lcy9xamQvdHdpbnQvJwpsZW1tYSA8LSAnaW5jZWwnCgp0d2VldHMgPC0gbG9hZF9kYXRhKGNvcnB1cywgbGVtbWEpCnR3ZWV0cyA8LSBwb3N0cHJvYyh0d2VldHMpCmBgYAoKIyMjIENvbXBhcmF0aXZlIGFuYWx5c2VzCgpgYGB7ciBpbmNsdWRlPUZBTFNFfQppZiAoZXhpc3RzKCdkZl9jb21wJykgPT0gRkFMU0UpIHsKICBkZl9jb21wIDwtIHJlYWRfY3N2KCdvdXQvZGZfY29tcC5jc3YnKQp9CmBgYAoKCiMjIENoZWNrIHR3ZWV0cwoKYGBge3J9CnR3ZWV0cyAlPiUKICBzZWxlY3QodHdlZXQsIGRhdGUpICU+JQogIHNsaWNlKC4sIHNhbXBsZSgxOm4oKSkpCmBgYAoKCiMjIFVzYWdlIGludGVuc2l0eQoKYGBge3J9CnVzZXMgPC0gZ2V0X3VzZXModHdlZXRzKQp1c2VzX3RvdCA8LSBnZXRfdXNlc190b3QodXNlcykKYWdlID0gZ2V0X2FnZSh1c2VzKQpjb2VmX3ZhciA8LSBnZXRfY29lZl92YXIodXNlcykKbWVhbl9kYXRlIDwtIGdldF9tZWFuX2RhdGUodXNlcykKbWF4X2RhdGUgPC0gZ2V0X21heF9kYXRlKHVzZXMpCnVzZXNfbW9udGggPC0gY29udl91c2VzX21vbnRoKHVzZXMpCnVzZXNfcGx0IDwtIHBsdF91c2VzKHVzZXNfbW9udGgsIGxlbW1hLCBtZWFuX2RhdGUsIG1heF9kYXRlKQpnZ3Bsb3RseSh1c2VzX3BsdCkKYGBgCgoKIyMgRGVncmVlIGNlbnRyYWxpemF0aW9uCgojIyMgRGlhY2hyb25pYwoKYGBge3J9CmRmX2NvbXAgJT4lCiAgZmlsdGVyKExFTU1BID09IGxlbW1hKSAlPiUKICBzZWxlY3QoU1VCU0VULCBDRU5UX0RFR1JFRSkgJT4lCiAgbXV0YXRlKFNVQlNFVCA9IGZhY3RvcihTVUJTRVQsIGxldmVscz1jKCdmaXJzdCcsICdtZWFuJywgJ21heCcsICdsYXN0JywgJ2Z1bGwnKSkpICU+JQogIGdncGxvdCguLCBhZXMoeD1TVUJTRVQsIHk9Q0VOVF9ERUdSRUUsIGdyb3VwPTEpKSArCiAgICBnZW9tX3BvaW50KCkgKwogICAgZ2VvbV9saW5lKCkKYGBgCgoKIyBDb21wYXJhdGl2ZSBhbmFseXNlcwoKCiMjIERlZ3JlZSBjZW50cmFsaXR5CgoKIyMjIE92ZXJhbGwKCiMjIyMgTGlzdAoKYGBge3J9CmRmX2NvbXAgJT4lCiAgc2VsZWN0KExFTU1BLCBTVUJTRVQsIFVTRVMsIENFTlRfREVHUkVFKSAlPiUKICBmaWx0ZXIoCiAgICBTVUJTRVQgPT0gJ2Z1bGwnLAogICAgIyBVU0VTID49IDEwMDAwCiAgICApICU+JQogIGFycmFuZ2UoKENFTlRfREVHUkVFKSkKYGBgCgoKIyMjIyBQbG90CgpgYGB7cn0KcGx0IDwtIGRmX2NvbXAgJT4lCiAgc2VsZWN0KExFTU1BLCBTVUJTRVQsIFVTRVMsIENFTlRfREVHUkVFKSAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdmdWxsJykgJT4lCiAgYXJyYW5nZSgoQ0VOVF9ERUdSRUUpKSAlPiUKICBnZ3Bsb3QoLiwgYWVzKHg9Q0VOVF9ERUdSRUUsIHk9cmVvcmRlcihMRU1NQSwgQ0VOVF9ERUdSRUUpKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIHNjYWxlX3hfY29udGludW91cyh0cmFucz0nbG9nJykKZ2dwbG90bHkocGx0KQpgYGAKCgojIyMgT3ZlciB0aW1lCgojIyMjIEFjcm9zcyBhbGwgbGVtbWFzCgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoCiAgICBTVUJTRVQgIT0gJ2Z1bGwnLAogICAgRURHRVMgPj0gMTAwCiAgICApICU+JQogIGdyb3VwX2J5KFNVQlNFVCkgJT4lCiAgc3VtbWFyaXplKENFTlRfQVZHID0gbWVhbihDRU5UX0RFR1JFRSkpICU+JQogIG11dGF0ZShTVUJTRVQgPSBmYWN0b3IoU1VCU0VULCBsZXZlbHM9YygnZmlyc3QnLCAnbWVhbicsICdtYXgnLCAnbGFzdCcpKSkgJT4lCiAgZ2dwbG90KC4sIGFlcyh4PVNVQlNFVCwgeT1DRU5UX0FWRywgZ3JvdXA9MSkpICsKICAgIGdlb21fcG9pbnQoKSArCiAgICBnZW9tX2xpbmUoKQpgYGAKCgojIyMjIEJpZ2dlc3QgY2hhbmdlcwoKYGBge3J9CmRmX2NvbXAgJT4lCiAgc2VsZWN0KExFTU1BLCBTVUJTRVQsIENFTlRfREVHUkVFLCBFREdFUykgJT4lCiAgZmlsdGVyKAogICAgU1VCU0VUICVpbiUgYygnZmlyc3QnLCAnbGFzdCcpLAogICAgRURHRVMgPj0gMTAwCiAgICApICU+JQogIGRwbHlyOjpncm91cF9ieShMRU1NQSkgJT4lCiAgZHBseXI6Om11dGF0ZShDRU5UX0RJRkYgPSBsYWcoQ0VOVF9ERUdSRUUpIC0gQ0VOVF9ERUdSRUUpICU+JQogIGRyb3BfbmEoKSAlPiUKICBzZWxlY3QoLVNVQlNFVCkgJT4lCiAgcmVuYW1lKAogICAgQ0VOVF9MQVNUID0gQ0VOVF9ERUdSRUUsCiAgICBFREdFU19MQVNUID0gRURHRVMKICAgICkgJT4lCiAgYXJyYW5nZShkZXNjKENFTlRfRElGRikpCmBgYAoKCiMgVXNhZ2UgaW50ZW5zaXR5CgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdmdWxsJykgJT4lCiAgYXJyYW5nZShkZXNjKFVTRVMpKQpgYGAKCgoKIyBVc2FnZSBpbnRlbnNpdHkgdnMuIG5ldHdvcmsgY2hhcmFjdGVyaXN0aWNzCgojIyBVc2VzIHZzLiBkZWdyZWUgY2VudHJhbGl6YXRpb24KCiMjIyBQbG90CgpgYGB7cn0KcGx0IDwtIGRmX2NvbXAgJT4lCiAgZmlsdGVyKAogICAgU1VCU0VUID09ICdmdWxsJywKICAgICMgVVNFUyA+PSAxMDAwCiAgICApICU+JQogIHNlbGVjdChMRU1NQSwgQ0VOVF9ERUdSRUUsIFVTRVMsIEVER0VTKSAlPiUKICBnZ3Bsb3QoLiwgYWVzKHg9Q0VOVF9ERUdSRUUsIHk9VVNFUykpICsKICAgIGdlb21fdGV4dChhZXMobGFiZWw9TEVNTUEpKSArIAogICAgc2NhbGVfeV9jb250aW51b3VzKHRyYW5zPSdsb2cnKSArCiAgICBzY2FsZV94X2NvbnRpbnVvdXModHJhbnM9J2xvZycpICsKICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSkKZ2dwbG90bHkocGx0KQpgYGAKCiMjIyBDb3JyZWxhdGlvbgoKYGBge3J9CmRmX2NvcnJfZnVsbCA8LSBkZl9jb21wICU+JQogIGZpbHRlcigKICAgIFNVQlNFVCAhPSAnZnVsbCcsCiAgICBFREdFUyA+PSAxMDAKICAgICkgJT4lCiAgc2VsZWN0KC1jKExFTU1BLCBTVUJTRVQsIE5FVF9XSU5ET1dfREFURVMsIFNLSVAsIFNUQU1QLCBOUk9XUykpCiAgCmNvci50ZXN0KGRmX2NvcnJfZnVsbCRVU0VTLCBkZl9jb3JyX2Z1bGwkQ0VOVF9ERUdSRUUpCmBgYAoKCiMjIERlZ3JlZSBjZW50cmFsaXR5IHZzLiBjb21tdW5pdGllcwoKIyMjIENvcnJlbGF0aW9uCgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdsYXN0JykgJT4lCiAgc2VsZWN0KENFTlRfREVHUkVFLCBDT01NVU5JVElFUykgJT4lCiAgbXV0YXRlKENPTU1VTklUSUVTID0gYXMubnVtZXJpYyhDT01NVU5JVElFUykpICU+JQogIGNvcnJlbGF0ZSgpCmBgYAoKCiMjIyBQbG90CgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdsYXN0JykgJT4lCiAgc2VsZWN0KExFTU1BLCBDRU5UX0RFR1JFRSwgQ09NTVVOSVRJRVMpICU+JQogIGdncGxvdCguLCBhZXMoeD1DRU5UX0RFR1JFRSwgeT1hcy5udW1lcmljKENPTU1VTklUSUVTKSkpICsKICAgIGdlb21fdGV4dChhZXMobGFiZWw9TEVNTUEpKSArCiAgICBzY2FsZV94X2NvbnRpbnVvdXModHJhbnM9J2xvZycpCmBgYAoKCgojIyBVc2VzIHZzLiB1c2VycwoKIyMjIFBsb3QKCmBgYHtyfQpwbHQgPC0gZGZfY29tcCAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdmdWxsJykgJT4lCiAgc2VsZWN0KExFTU1BLCBVU0VTLCBVU0VSUykgJT4lCiAgZ2dwbG90KC4sIGFlcyh4PVVTRVJTLCB5PVVTRVMpKSArCiAgICBnZW9tX3RleHQoYWVzKGxhYmVsPUxFTU1BKSkgKwogICAgc2NhbGVfeF9jb250aW51b3VzKHRyYW5zPSdsb2cnKSArCiAgICBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9J2xvZycpICsKICAgIGdlb21fc21vb3RoKG1ldGhvZD1sbSkKZ2dwbG90bHkocGx0KQpgYGAKCiMjIyBDb3JyZWxhdGlvbgoKYGBge3J9CmRmX2NvbXAgJT4lCiAgZmlsdGVyKFNVQlNFVCA9PSAnZnVsbCcpICU+JQogIHNlbGVjdChVU0VTLCBVU0VSUykgJT4lCiAgY29ycmVsYXRlKCkKYGBgCgoKIyMgQ29lZmZpY2llbnQgb2YgdmFyaWF0aW9uCgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoCiAgICBTVUJTRVQgPT0gJ2Z1bGwnLAogICAgVVNFUyA+PSAxMDAwCiAgICApICU+JQogIHNlbGVjdChMRU1NQSwgVVNFUywgQ09FRl9WQVIpICU+JQogIGFycmFuZ2UoZGVzYyhDT0VGX1ZBUikpCmBgYAoKCiMjIFByb2Nlc3Npbmcgc3RhdHVzCgojIyMgTGVtbWEgbGlzdAoKYGBge3J9CmRmX2NvbXAgJT4lCiAgc2VsZWN0KExFTU1BLCBTVUJTRVQsIFNUQU1QKSAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdmdWxsJykgJT4lCiAgbXV0YXRlKFNUQU1QID0gYXNfZGF0ZXRpbWUoU1RBTVApKSAlPiUKICBhcnJhbmdlKGRlc2MoU1RBTVApKQpgYGAKCgojIyMgRGF0YXNldCBzdGF0aXN0aWNzCgpgYGB7cn0KZGZfY29tcCAlPiUKICBmaWx0ZXIoU1VCU0VUID09ICdmdWxsJykgJT4lCiAgc2VsZWN0KExFTU1BLCBTVUJTRVQsIFVTRVMsIFVTRVJTKSAlPiUKICBkcGx5cjo6c3VtbWFyaXNlKAogICAgVVNFU19UT1QgPSBzdW0oVVNFUyksCiAgICBVU0VSU19UT1QgPSBzdW0oVVNFUlMpCiAgICApCmBgYAoKCiMgQ09FRl9WQVIgdnMuIENFTlQKCmBgYHtyfQpkZl9jb21wICU+JQogIGZpbHRlcihTVUJTRVQgPT0gJ2Z1bGwnKSAlPiUKICBzZWxlY3QoTEVNTUEsIENPRUZfVkFSLCBDRU5UX0RFR1JFRSkgJT4lCiAgZ2dwbG90KC4sIGFlcyh5PUNPRUZfVkFSLCB4PUNFTlRfREVHUkVFKSkgKwogICAgZ2VvbV90ZXh0KGFlcyhsYWJlbD1MRU1NQSkpICsKICAgIHNjYWxlX3lfY29udGludW91cyh0cmFucz0nbG9nJykKYGBgCgoKIyBDb3JyZWxhdGlvbnM6IEVEQQoKYGBge3J9CmxpYnJhcnkoSG1pc2MpCgpkZl9jb3JyIDwtIGRmX2NvbXAgJT4lCiAgIyBmaWx0ZXIoU1VCU0VUID09ICdsYXN0JykgJT4lCiAgc2VsZWN0KC1jKExFTU1BLCBTVUJTRVQsIE5FVF9XSU5ET1dfREFURVMsIFNLSVAsIFNUQU1QLCBOUk9XUykpCiAgIyBzZWxlY3QoLWMoVVNFUlMsIEFHRSkpICU+JQogICMgbXV0YXRlKEZPQ1VTID0gVVNFUykgJT4lCiAgIyBmb2N1cyhGT0NVUykgJT4lCiAgIyBnZ3Bsb3QoLiwgYWVzKHJlb3JkZXIocm93bmFtZSwgRk9DVVMpLCBGT0NVUykpICsKICAgICMgZ2VvbV9jb2woKSArCiAgICAjIGNvb3JkX2ZsaXAoKQogICMgcmVhcnJhbmdlKCkgJT4lCiAgIyBzaGF2ZSgpICU+JQogICMgcnBsb3QoKQogICMgbmV0d29ya19wbG90KG1pbl9jb3I9LjUpICU+JQoKICAKYGBgCgoKICA=